package org.example.product;

import dev.langchain4j.agent.tool.Tool;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

/**
 * 产品工具类，提供产品库存检查和配送时间查询功能
 */
@Component
public class ProductTools {

    /**
     * 产品数据库，存储产品信息
     */
    private static  final Map<String,ProductInfo> productDatabase = new HashMap<>();

    static {
        // 初始化产品数据库，添加默认产品信息
        productDatabase.put("iphone16手机", new ProductInfo("iphone16手机", true, "3-5个工作日"));
        productDatabase.put("苹果笔记本电脑", new ProductInfo("苹果笔记本电脑", false, "7-10个工作日"));
        productDatabase.put("苹果耳机", new ProductInfo("苹果耳机", true, "2-3个工作日"));
    }

    /**
     * 检查指定产品的库存状态
     * @param productName 产品名称
     * @return 返回产品库存状态信息，包括有无库存的提示
     */
    @Tool(name="检查商品都库存状态")
    public String checkStock(String productName){
        System.out.println("检查库存");
        ProductInfo productInfo = productDatabase.get(productName);
        if(productInfo == null){
            return "抱歉，没有找到" + productName+"相关信息";
        }
        return productInfo.getIsStock()? productInfo.getName()+"目前有库存，可以下单":
                productInfo.getName()+"目前没有库存,我们会尽快补货";
    }

    /**
     * 获取指定产品的配送时间信息
     * @param productName 产品名称
     * @return 返回产品的配送时间信息
     */
    @Tool(name="用于查询商品的配送时间")
    public String getDeliveryTime(String productName){
        System.out.println("用于查询配送时间");
        ProductInfo productInfo = productDatabase.get(productName);
        if(productInfo ==null){
            return "抱歉，没有找到" + productName+"相关信息";
        }
        return productInfo.getName() +"的配送时间为"+productInfo.getDeliveryTime();
    }
}

